// pages/home/home.js
import {
  getBanners,
  getNotifications,
  getNewsList
} from '../../utils/userApi'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    loading: true,
    bannerList: [''],
    noticeList: [''],
    newsList: [],
    proposalButtons: [{
        id: 1,
        text: '我要提案',
        type: 'proposal',
        url: '/pages/proposal/submit',
        icon: '/assets/icons/首页/1我要提案.svg'
      },
      {
        id: 2,
        text: '我的联名',
        type: 'proposal',
        url: '/pages/proposal/cosign',
        icon: '/assets/icons/首页/2我的联名.svg'
      },
      {
        id: 3,
        text: '我的提案',
        type: 'proposal',
        url: '/pages/proposal/my',
        icon: '/assets/icons/首页/3我的提案.svg'
      },
      {
        id: 4,
        text: '提案公示',
        type: 'proposal',
        url: '/pages/proposal/public',
        icon: '/assets/icons/首页/4提案公示.svg'
      }
    ],
    civilButtons: [{
        id: 1,
        text: '社情民意报送',
        subText: '社情民意报送',
        type: 'civil',
        url: '/pages/civil/submit',
        icon: '/assets/icons/首页/5社情民意我要报送.svg'
      },
      {
        id: 2,
        text: '社情民意联名',
        subText: '社情民意联名',
        type: 'civil',
        url: '/pages/civil/consign',
        icon: '/assets/icons/首页/6社情民意我的联名.svg'
      },
      {
        id: 3,
        text: '我的报送',
        subText: '我的报送',
        type: 'civil',
        url: '/pages/civil/my',
        icon: '/assets/icons/首页/7社情民意我的报送.svg'
      },
      {
        id: 4,
        text: '报送公示',
        subText: '报送公示',
        type: 'civil',
        url: '/pages/civil/public',
        icon: '/assets/icons/首页/8社情民意报送公示.svg'
      }
    ],
    activityButtons: [{
        id: 1,
        text: '发起活动',
        type: 'activity',
        url: '/pages/activity/createHome',
        icon: '/assets/icons/首页/9发起活动.svg'
      },
      {
        id: 2,
        text: '参加活动',
        type: 'activity',
        url: '/pages/activity/canActivity',
        icon: '/assets/icons/首页/10参加活动.svg'
      },
      {
        id: 3,
        text: '我的活动',
        type: 'activity',
        url: '/pages/activity/myActivity',
        icon: '/assets/icons/首页/11我的活动.svg'
      },
      {
        id: 4,
        text: '活动成果',
        type: 'activity',
        url: '/pages/activity/resultList',
        icon: '/assets/icons/首页/12活动成果.svg'
      }
    ],
    newsList: [{
        id: 1,
        title: '关于开展2024年度民主评议工作的通知'
      },
      {
        id: 2,
        title: '2023年度优秀提案评选结果公示'
      }
    ],
    bottomButtons: [{
        id: 1,
        text: '用户账户信息',
        type: 'user',
        url: '/pages/myMessage/myMessage',
        icon: '/assets/icons/下方导航栏/用户账户信息.svg'
      },
      {
        id: 2,
        text: '我的会议',
        type: 'meeting',
        url: '/pages/meeting/meetingList',
        icon: '/assets/icons/下方导航栏/我的会议.svg'
      },
      {
        id: 3,
        text: '签到',
        type: 'signin',
        url: '/pages/sign/signList',
        icon: '/assets/icons/下方导航栏/我的签到.svg'
      }
    ],
    friendUrl: 'https://00pingxuan.00pingxuan.top/custom/Am9k0Yl?code=081DVSkl2K0duf4iCnol2y1GuW1DVSkb&state=STATE'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.fetchHomeData()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    setTimeout(() => { // 使用延时，避免隐藏不生效
      wx.hideHomeButton()
    }, 200);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.fetchHomeData()
    setTimeout(() => {
      wx.stopPullDownRefresh()
      wx.showToast({
        title: '刷新成功',
        icon: 'success',
        duration: 1000
      })
    }, 1000)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  navigateTo(e) {
    const url = e.currentTarget.dataset.url;
    wx.navigateTo({
      url: url
    });
  },

  // 获取首页数据
  async fetchHomeData() {
    try {
      // 获取轮播图数据
      const bannerRes = await getBanners()

      // 获取通知数据
      const noticeRes = await getNotifications()

      // 获取新闻数据
      const newsRes = await getNewsList()
      console.log("新闻数据获取成功", newsRes.data.data)
      this.setData({
        bannerList: bannerRes.data.data || [],
        noticeList: noticeRes.data.data || [],
        newsList: newsRes.data.data || [],
        loading: false
      })
    } catch (error) {
      console.error('获取首页数据失败', error)
      wx.showToast({
        title: '数据加载失败',
        icon: 'none'
      })
    }
  },

  // 统一处理页面跳转
  handleNavigation(e) {
    const {
      type,
      url,
      nid
    } = e.currentTarget.dataset

    // 检查是否需要登录验证的页面类型，添加 'news' 和 'more' 类型
    const needLoginTypes = ['proposal', 'civil', 'activity', 'user', 'meeting', 'signin', 'news', 'more'];

    // 如果是需要登录的页面类型，先检查登录状态
    if (needLoginTypes.includes(type)) {
      const app = getApp()
      const isLoggedIn = app.checkLoginStatus()
      if (!isLoggedIn) {
        // 延时显示登录提示框，让失效提示先显示
        setTimeout(() => {
          wx.showModal({
            title: '提示',
            content: '该功能需要登录后才能使用，是否前往登录？',
            success(res) {
              if (res.confirm) {
                wx.navigateTo({
                  url: '/pages/login/login'
                })
              }
            }
          })
        }, 1000) // 1秒后显示登录提示框
        return;
      }
    }

    // 登录验证通过或不需要登录的页面，继续原有的跳转逻辑
    if (type === 'news' && nid) {
      // 如果是新闻详情页，附加新闻ID参数
      wx.navigateTo({
        url: `${url}?nid=${nid}`,
        fail() {
          wx.showToast({
            title: '页面跳转失败',
            icon: 'none'
          })
        }
      })
    } else {
      // 其他页面正常跳转
      wx.navigateTo({
        url,
        fail() {
          wx.showToast({
            title: '页面跳转失败',
            icon: 'none'
          })
        }
      })
    }
  },

  goShow() {
    wx.navigateTo({
      url: '/pages/news/newShow',
    })
  },
  handleLinkTap() {
    // 复制链接到剪贴板
    wx.setClipboardData({
      data: this.data.friendUrl,
      success: () => {
        // 复制成功后显示模态框
        wx.showModal({
          title: '提示',
          content: '不支持网页打开，\n' + 
          '已为您复制好网页链接，\n' + 
          '请到浏览器粘贴链接打开,链接为：'+this.data.friendUrl,
          showCancel: false,
          confirmText: '我知道了'
        })
      },
      fail: () => {
        wx.showToast({
          title: '复制失败',
          icon: 'none'
        })
      }
    })
    // wx.navigateTo({
    //   url: '/pages/friend/friend',
    // })
  },

  showComingSoon: function () {
    wx.showToast({
      title: '尚未开放 敬请期待',
      icon: 'none',
      duration: 800
    });
  }
})